1. Field of the Invention
This invention generally relates to communication path control methods for data networks that use high-speed buses for interconnections among devices by means of bridges. Particularly, this invention relates to communication path controls for data networks that use high-speed IEEE 1394 serial buses (which are exclusively described in IEEE standard 1394–1995, namely, “IEEE Standard for a High Performance Serial Bus”, where “IEEE” is an abbreviation for “Institute of Electrical and Electronics Engineers”) for interconnections among prescribed devices such as personal computers and peripherals as well as audio/visual devices by means of bridges.
2. Description of the Related Art
Recently, personal computers are widely spread in households in various countries. To cope with an increasing percentage of households or persons owning the personal computers and to further improve use rates of the personal computers among general people, manufacturers and engineers develop a variety of techniques with regard to hardware, software and application of the personal computers, peripherals and other related devices. Meanwhile, digitalization is generally and widely spread among people to frequently purchase so-called “digital devices” such as digital video cameras so that digital data are used to represent images, pictures, voices and sounds. For this reason, even the general households perform processing of digital data produced by the digital video cameras on the personal computers, for example. Under such circumstances, various techniques are developed and proposed to improve connectibility among personal computers and peripherals such as printers and image scanners, so that they are partly actualized for practical use as universal serial buses (USB) and IEEE 1394 serial buses.
Now, a description will be given with respect to communications between devices connected by way of IEEE 1394 serial buses. For convenience' sake, the devices having connectibility with the IEEE 1394 serial buses are called “IEEE 1394 devices”, and the IEEE 1394 serial buses are simply referred to as “buses”.
Normally, when user connects or disconnects an IEEE 1394 device with an IEEE 1394 serial bus, initialization (namely, “bus reset”) is carried out, so that an ID number thereof (namely, “physical ID”) is automatically allocated to the IEEE 1394 device. The allocated physical ID is stored in a CSR (Command and Status Register) space of the IEEE 1394 device, which is defined by the IEEE 1394 standard. After occurrence of the bus reset, communication is inhibited between the IEEE 1394 devices until allocation of the physical ID is completed.
ID numbers are also allocated to various buses, wherein they are referred to as bus IDs. If a data network is configured by way of a single bus, its bus ID can be set to ‘3FFh’ where a last letter ‘h’ represents hexadecimal notation. A combination of the bus ID and physical ID is called a node ID. Using such a node ID, it is possible to discriminate types of the IEEE 1394 devices.
Specific information specifically owned by the IEEE 1394 device is described in an address space defined between an address ‘FF FF F0 00 04 00h’ and an address ‘FF FF F0 00 07 FFh’ within the CSR space of the IEEE 1394 device. Such an address space is generally called “configuration ROM”, which is configured by various sections, namely, Bus_info_block section, Root-directory section, Unit_directory section, root_leaves section and unit_leaves section. In the Bus_info_block section, 64-bit Extended Unique_ID (normally called “EUI-64”) is described as a specific ID of the IEEE 1394 device. The Root_directory section contains module IDs and option information, where module IDs designate modules being assigned to the IEEE 1394 device. Information of the configuration ROM realize discrimination of types of the IEEE 1394 devices, wherein specific IDs realize distinction between IEEE 1394 devices belonging to the same type.
There are provided two methods for communications between IEEE 1394 devices connected by the IEEE 1394 serial bus, namely, a first method using asynchronous packets and a second method using stream packets. Concrete examples of those methods will be described with reference to FIGS. 22 and 23 respectively.
FIG. 22 shows an example of a format of an asynchronous packet, which is configured by multiple fields. Herein, a transmission destination bus ID field F100 stores bus IDs which are respectively allocated to buses connected with IEEE 1394 devices each corresponding to a transmission destination. If communication is made by a single bus in a data network, the bus ID can be set to ‘3FFh’. In addition, a transmission destination physical ID field F101 stores physical IDs that are allocated to the IEEE 1394 devices each corresponding to a transmission destination. A tcode field F102 stores a value that is defined in advance by the IEEE 1394 standard to represent a type of the asynchronous packet. A transmission source ID field F103 stores 16-bit data wherein high-order ten bits represent bus IDs of buses connected with IEEE 1394 devices each corresponding to a transmission source while a low-order six bits represent physical IDs of the IEEE 1394 devices. Further, a data field F104 stores transmission information.
Generally speaking, procedures of communication using asynchronous packets are classified into three types of transactions, namely, read transaction provided for the purpose of reading stored content of a CSR space of an IEEE 1394 device corresponding to a transmission destination, write transaction for the purpose of writing data to the IEEE 1394 device and lock transaction. Herein, the read transaction uses two types of asynchronous packets, namely, a read request packet and a read response packet. Similarly, the write transaction uses two types of asynchronous packets, namely, a write request packet and a write response packet. In addition, the lock transaction uses two types of asynchronous packets, namely, a lock request packet and a lock response packet.
FIG. 23 shows an example of a format of a stream packet. Before starting communication using stream packets, lock transaction is carried out in advance to secure a bandwidth and a channel for use in communication. A number of the secured channel is stored in a channel field F110 of a stream packet to be transmitted to a certain node. Based on the channel number stored in the channel field F110, the node makes a decision whether to receive the stream packet or not. In communication using stream packets between IEEE 1394 devices interconnected by buses, it is necessary to perform prescribed controls on communication paths for interconnections between IEEE 1394 devices, as follows:
In the communication, bandwidths and channels are secured according to needs, so that numbers of the secured channels are communicated to the IEEE 1394 devices that transmit and receive the stream packets to establish communication paths (or links). At completion of the communication, the secured bandwidths and channels are released to disconnect the communication paths.
Japanese Unexamined Patent Publication No. Hei 11-205363 discloses an example of a conventional communication path control method in which a device controller is provided for the purpose of controlling IEEE 1394 devices for performing transmission and reception of isochronous stream packets. Herein, the device controller is used to establish or disconnect communication paths between the IEEE 1394 devices which are controlled subjects.
FIG. 24 shows an outline configuration of the conventional device controller. Namely, a device controller 100 is configured by a device control block 101, a device information management table storage block 102, a serial bus management block 103, an IEEE 1394 transaction layer 104, an IEEE 1394 link layer 105 and an IEEE 1394 physical layer 106.
The device controller 100 is used to control IEEE 1394 devices, having device information, which are connected with buses. Prior to controlling the IEEE 1394 devices, the device information management table storage block 102 stores the device information, which is collected from the IEEE 1394 devices, and management information for management of communication paths being established between the IEEE 1394 devices. As examples of the IEEE 1394 devices that perform transmission and reception of isochronous streams packets, it is possible to list audio/visual devices (or AV devices) that install master plug registers (referred to as “MPR”) and plug control registers (referred to as “PCR”) based on the known standard of IEC61883 (where “IEC” represents “International Electrotechnical Commission”). The PCRs are classified into two types, namely, “output PCR (referred to as “oPCR”)” used for transmission of packets and “input PRC (referred to as “iPCR”)” used for reception of packets.
FIGS. 25A and 25B show formats of the aforementioned PCRs. Namely, FIG. 25A shows a format for oPCR, while FIG. 25B shows a format for iPCR.
As shown in FIG. 25A, the oPCR is configured by eight fields which are denoted by reference symbols F120 to F127 respectively. Herein, the field F124 stores channel numbers over which isochronous stream packets are to be output. The field 122 corresponds to a point-to-point connection counter whose value corresponds to a number of point-to-point connections being established for the oPCR based on the IEC61883 standard. If connections being established using the oPCR correspond to broadcast connections defined by the IEC61883 standard, a broadcast connection counter of the field F121 is set to ‘1’.
As shown in FIG. 25B, the iPCR is configured by six fields which are denoted by reference symbols F130 to F135 respectively.
The field F134 stores channel numbers over which isochronous stream packets are to be received. The field F132 corresponds to a point-to-point connection counter whose value corresponds to a number of point-to-point connections being established for the iPCR based on the IEC61883 standard. If connections being established using the iPCR correspond to broadcast connections defined by the EC61883 standard, a broadcast connection counter of the field F131 is set to ‘1’.
Accessing to each of the fields of the oPCR and iPCR is made using lock transaction. Communication paths are established or disconnected in order to perform or stop communication using isochronous stream packets between audio/visual devices. Accompanied with establishment and disconnection of the communication paths, it is necessary to adequately set the aforementioned oPCR and iPCR. Next, a concrete description will be given with respect to establishment and disconnection of communication paths between audio/visual device as well as setting of those PCRs.
FIG. 26 shows conventional procedures for establishment of a point-to-point connection between audio/visual devices. In order to establish a point-to-point connection between the audio/visual devices, a device controller firstly secures a bandwidth and a channel from an isochronous resource manager (referred to as “IRM”) which is connected with a bus based on the IEEE 1394 standard in step S100. In step S101, a decision is made as to whether the device controller succeeds to secure the bandwidth and channel or not. If the device controller fails to secure the bandwidth and channel, in other words, if a decision result of step S101 is “NO”, a flow ends without proceeding to other steps.
If the device controller succeeds to secure the bandwidth and channel, in other words, if a decision result of step S101 is “YES”, the flow proceeds to step S102 in which fields are set with respect to an oPCR of a transmitting node for transmitting isochronous stream packets and an iPCR of a receiving node for receiving the isochronous stream packets. For example, the secured channel number is set to the field F124 of the oPCR shown in FIG. 25A and field F134 of the iPCR shown in FIG. 25B. In addition, the point-to-point counters of the fields F122 and F132 are both set to ‘1’.
When the aforementioned setting process of step S102 is performed on the oPCR of the transmission node and iPCR of the receiving node, the flow proceeds to step S103 in which a decision is made as to whether the setting is completed successfully on the both PCRs or not. If the step S103 determines that the setting is completed successfully on the both PCRs, in other words, if a decision result of step S103 is “YES”, the procedures for establishment of the point-to-point connection are ended. If the setting is not completed successfully on the both PCRs, in other words, if a decision result of step S103 is “NO”, the flow proceeds to step S104 that discriminates whether the setting fails on the both PCRs or not.
If the step S104 determines that the setting fails on the both PCRs, in other words, if a decision result of step S104 is “YES”, the flow proceeds to step S105 to perform a release process to release the secured bandwidth and channel, which are secured in the foregoing step S100, on the IRM. Then, the procedures for establishment of the point-to-point connection is ended. If the step S104 determines that the setting fails on either the oPCR of the transmitting node or iPCR of the receiving node, in other words, if a decision result of step S104 is “NO”, the flow proceeds to step S106 to perform a disconnection process to disconnect the point-to-point connection. Then, the procedures are ended.
FIG. 27 shows procedures for addition of a new receiving node in connection with a point-to-point connection which is established in advance. In order to add a new receiving node in connection with a point-to-point connection which is established in advance, a flow firstly proceeds to step S110 to obtain a channel number which is described in a field F124 (see FIG. 25A) of an oPCR of a transmitting node. Then, the flow proceeds to step S111 in which setting is made with respect to an iPCR of the new receiving note to be added and the oPCR of the transmitting node. Before adding the new receiving node, a point-to-point connection counter of a field F122 of the oPCR of the transmitting node is set to a certain value. To respond to addition of the new receiving node, such a value of the point-to-point connection counter is incremeted by ‘1’. In addition, the channel number which is obtained in the foregoing step S110 is set to a field F134 of the iPCR of the new receiving node. Further, a point-to-point connection counter of a field F132 of the iPCR of the receiving node is set to ‘1’.
After completion of the aforementioned step S111, the flow proceeds to step S112 in which a decision is made as to whether the setting is completed successfully with respect to the oPCR of the transmitting node and iPCR of the new receiving node or not. If the step S112 determines that the setting is completed successfully with respect to both of the oPCR of the transmitting node and iPCR of the new receiving node, in other words, if a decision result of step S112 is “YES”, the procedures are ended. If a decision result of step S112 is “NO”, the flow proceeds to step S113 in which a decision is made as to whether the setting fails on both of the oPCR of the transmitting node and iPCR of the new receiving node. If the step S113 determines that the setting fails on both of them, in other words, if a decision result of step S113 is “YES”, the procedures are ended. If a decision result of step S113 is “NO”, namely, if the step S113 determines that the setting fails on either the oPCR of the transmitting node or iPCR of the new receiving node, the flow proceeds to step S114 to perform a prescribed process.
Next, details of the step S114 will be described with reference to FIG. 28, which shows procedures for disconnection of the point-to-point connection which is established. In order to disconnect the point-to-point connection being previously established between the transmitting node and receiving node, a flow proceeds to step S120 to perform re-setting of the oPCR of the transmitting node and iPCR of the receiving node. Namely, the point-to-point connection counter of the field F122 (see FIG. 25A) is decremented by ‘1’ while the point-to-point connection counter of the field F132 (see FIG. 25B) is decremented by ‘1’. Then, the flow proceeds to step S121 in which a decision is made as to whether the point-to-point connection counter of the field F122 of the oPCR of the transmitting node is set at ‘0’ or not. If a decision result of step S121 is “YES”, namely, if the step S121 determines that the point-to-point connection counter of the field F122 of the oPCR of the transmitting node is now set to ‘0’, the flow proceeds to step S122 to perform a prescribed process. If a decision result of step S121 is “NO”, namely, if the point-to-point connection counter of the field F122 of the oPCR of the transmitting node is not set at ‘0’, the procedures for disconnection of the point-to-point connection are ended.
Meanwhile, engineers develop and study IEEE 1394 bridges by which multiple buses are mutually interconnected together to allow transmission of packets between different buses. By using the IEEE 1394 bridges, it is possible to increase data networks in scale and data transfer efficiency on the basis of the IEEE 1394 standard. Practically, the IEEE P1394.1 committee works on standardization of the IEEE 1394 bridges. The IEEE 1394 bridges have multiple portals and internal switching structures for exchange of packets between portals, wherein the portals are connected with different buses respectively.
FIG. 29 shows an outline configuration of an IEEE 1394 bridge. Namely, an IEEE 1394 bridge 110 is configured by multiple portals 111a, 111b, 111c and an internal switching device 112. The portals 111a, 111b and 111c are respectively connected with buses 113a, 113b and 113c. Normally, each of the portals 111a, 111b, 111c acts as an IEEE 1394 device on each of the buses 113a, 113b, 113c. When receiving packets to be delivered from one bus to another, each portal sends the received packets to the internal switching device 112. The internal switching device 112 passes the packets sent from one portal to another portal which is appropriate. Then, the portal receives the packets being passed from the internal switching device 112 and sends them onto its own bus.
Thus, a data network can be configured using multiple buses which are interconnected together by means of the IEEE 1394 bridge 110. Such a data network copes with bus reset that occurs on a certain bus within the multiple buses. That is, initialization and reallocation of a physical ID is performed only on the bus on which the bus reset occurs, whereas other buses which are connected together by way of the IEEE 1394 bridge do not recognize occurrence of the bus reset. For this reason, the other buses are capable of continuing communications without interruption, regardless of occurrence of the bus reset on the bus.
The IEEE 1394 bridge 110 has a function to select specific packets from among packets received by a certain portal to transfer them onto a different bus. Next, a concrete description will be given with respect to a transfer method of asynchronous packet stream based on the IEEE P1394.1 draft standard issued by the IEEE P1394.1 committee.
Upon receipt of an asynchronous packet, the IEEE 1394 bridge 110 extracts a transmission destination bus ID of a field F100 shown in FIG. 22. With reference to transfer information stored in advance, the IEEE 1394 bridge 110 makes a decision whether to output the received asynchronous packet to the internal switching structure. As a storing form of the transfer information, it is possible to list a routing map that is realized by bit strings of 1023 bits, for example. Setting of the routine map is made such that in order to transfer an asynchronous packet whose field F100 represents the transmission destination bus ID is set to ‘n’, bit n+1 in a high order is set to ‘1’.
FIG. 30 shows a routing map for portals of a data network that is configured using four networks being interconnected together by means of three IEEE 1394 bridges, for example. Herein, total 1023 bits are arranged in line, wherein bits 1, 2 and 4 in a high order are all set to ‘1’. FIG. 31 shows a format for STREAM_CONTROL entry (referred to as “SCR”) used for transfer of stream packets. Each portal installs maximally sixty four sets of the SCR, each of which is serially numbered.
Suppose that a portal receives stream packets from its own bus over a prescribed channel with reference to the SCR shown in FIG. 31. Herein, an “st” field F140 is related to determination whether to output the stream packets, which are received over the channel whose number is stored in a “channel” field F141, to the internal switching device 112 or determination whether to output the stream packets onto the own bus connected with the present portal. Herein, former one is called a listener operation, while latter one is called a talker operation. Namely, if the st field F140 is set to ‘1h’ in hexadecimal notation, the listener operation is performed with respect to stream packets using the channel whose number is stored in the channel field F141. If it is set to ‘2h’, the talker operation is performed with respect to stream packets being passed from the internal switching device 112. Incidentally, setting of the SCR is invalidated when the st field F140 is set to ‘0h’.
Suppose that a portal receives stream packets from its own bus connected thereto. The channel field F141 stores a channel number used by stream packets which should be transferred to a different bus within the stream packets received from the own bus of the portal. Suppose that a portal sends stream packets, being passed thereto from the internal switching device 112, onto its own bus connected thereto. In that case, the channel field F141 stores a channel number which is to be described in the channel field F110 (see FIG. 23) of the stream packet. An i field F141 represents whether stream packets to be transferred correspond to isochronous stream packets or asynchronous stream packets.
When a portal receives a stream packet from its own bus connected thereto, it extracts a value described in a channel field F110 of the received stream packet. The extracted value is checked with reference to all of SCRs installed in the portal. For example, if an st field F141 is set to ‘1h’ so that there exists an SCR in which a channel field F141 is set to the extracted value, the portal performs a listener operation to output the received stream packet to the internal switching device 112. Suppose that the channel number is set to ‘n’ (where “n” is a natural number arbitrarily selected), which designates an SCR[n] within all SCRs installed in each portal. Accompanied with the aforementioned listener operation, the internal switching device 112 selects an appropriate portal to which the stream packet input thereto is being transferred. So, the selected portal receives from the internal switching device 112 the stream packet to correspondingly refer to an SCR[n] that has a same number of the SCR of the foregoing portal originally receiving the stream packet from its own bus. For example, if an st field F140 of the SCR[n] is set to ‘2h’ indicating a talker operation, a value described in a channel field F141 of the SCR[n] is set in the field F110 of the stream packet being transferred from the internal switching device 112. Then, the selected portal transmits the stream packet onto its own bus connected thereto.
By the way, there is a problem in that the conventional communication path control method cannot be applied to data networks which are configured using multiple buses being mutually interconnected by means of IEEE 1394 bridges. Reasons will be described below.
That is, the conventional communication path control method lacks procedures for examination (or checking) of buses which are used as communication paths being established between IEEE 1394 devices. In addition, the conventional communication path control method also lacks procedures for securing and releasing resources of other buses which differ from own buses specifically connected to the IEEE 1394 devices. Further, the conventional communication path control method is incapable of detecting bus resets on different buses which differ from the own bus specifically connected to the IEEE 1394 devices. Furthermore, it is incapable of detecting variations of topology.